home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-10-24 | 4.4 KB | 181 lines | [TEXT/CWIE] |
- // ===========================================================================
- // LBalloonTracker.h ©1996 CS&T Inc. All rights reserved.
- // ===========================================================================
- //
- // LBalloonTracker implements Balloon Help for PowerPlant view hierarchies.
- //
-
- #ifndef _H_LBalloonTracker
- #define _H_LBalloonTracker
-
- #ifdef __MWERKS__
- # pragma once
- # pragma cplusplus on
- #endif
-
- // PowerPlant headers
- #include <PP_Types.h>
-
-
- // forward class & structure declarations
- class LPane;
- class LView;
- struct HMMessageRecord;
-
-
- class LBalloonTracker
- {
- public:
-
- // constructors / destructors
- LBalloonTracker();
- LBalloonTracker(ResIDT inBalloonsID);
- virtual ~LBalloonTracker();
-
- // inquiries
- static Boolean IsBalloonHelpAvailable();
-
- // modifiers
- static void RemoveBalloons();
- static void SetDefaultBalloonFile(Int16 inBalloonResFile);
- void SetBalloonDataID(ResIDT inBalloonDataID);
-
- protected:
-
- // balloon tracking
- void TrackBalloons(
- LView* inHitView,
- Point inPortPt);
- virtual void GetBalloonID(
- LPane* inHitPane,
- Point inPortPt,
- PaneIDT& outPaneID,
- Int16& outHelpIndex,
- Rect& outHotRect,
- Point& outTipPoint) const;
- virtual Boolean FindBalloon(
- PaneIDT inPaneID,
- Int16 inHelpIndex,
- HMMessageRecord& outHelpMsg,
- Int16& outHelpOptions,
- Int16& outHelpProcID,
- Int16& outHelpVariant) const;
-
- // modifiers
- void RemoveBalloonsIfInTracker();
-
- private:
-
- // constants
- enum { index_Bad = -1 };
-
- // nested classes
- union BalloonDef;
- class Init;
- class Loader;
-
- // inquiries
- Boolean HasBalloonFile() const;
- Boolean HasBalloonDataID() const;
- Boolean HasBalloonData() const;
-
- // modifiers
- static void ClearCache();
-
- // member variables
- Int16 mBalloonFile;
- ResIDT mBalloonDataID;
- BalloonDef** mBalloonData;
-
- // static member variables
- static Boolean sHasBalloonHelp;
- static LPane* sLastBalloonPane;
- static LBalloonTracker* sLastBalloonTracker;
- static Rect sLastHelpRect;
- static Int16 sLastHelpIndex;
- static Int16 sLastHelpOptions;
- static Int16 sLastHelpProcID;
- static Int16 sLastHelpVariant;
- static Point sLastHelpTip;
- static Init sInit;
- static Int16 sDefaultResFile;
-
- // friends
- friend class Init;
- friend class Loader;
- };
-
-
- // Inline member function definitions
-
-
- // ---------------------------------------------------------------------------
- // • IsBalloonHelpAvailable [static]
- // ---------------------------------------------------------------------------
- // Returns true if Balloon Help is available.
-
- inline Boolean
- LBalloonTracker::IsBalloonHelpAvailable()
- {
- return (sHasBalloonHelp);
- }
-
-
- // ---------------------------------------------------------------------------
- // • HasBalloonFile
- // ---------------------------------------------------------------------------
- // Internal function that returns true if this tracker has a valid resource
- // file.
-
- inline Boolean
- LBalloonTracker::HasBalloonFile() const
- {
- return (mBalloonFile != kResFileNotOpened);
- }
-
-
- // ---------------------------------------------------------------------------
- // • HasBalloonDataID
- // ---------------------------------------------------------------------------
- // Internal function that returns true if this tracker has a valid balloon
- // help resource ID.
-
- inline Boolean
- LBalloonTracker::HasBalloonDataID() const
- {
- return (mBalloonDataID != 0);
- }
-
-
- // ---------------------------------------------------------------------------
- // • HasBalloonData
- // ---------------------------------------------------------------------------
- // Internal function that returns true if this tracker has a valid balloon
- // help resource, and if that resource is currently in memory.
-
- inline Boolean
- LBalloonTracker::HasBalloonData() const
- {
- return ((mBalloonData != NULL) && (*mBalloonData != NULL));
- }
-
-
- // ---------------------------------------------------------------------------
- // • ClearCache [static]
- // ---------------------------------------------------------------------------
- // Internal function that clears LBalloonTracker's cached information
- // describing the last balloon that it displayed.
-
- inline void
- LBalloonTracker::ClearCache()
- {
- sLastBalloonPane = NULL;
- sLastBalloonTracker = NULL;
- sLastHelpTip.h = -32000;
- sLastHelpTip.v = -32000;
- sLastHelpIndex = index_Bad;
- }
-
-
- #endif // _H_LBalloonTracker
-